#ifndef INSIM_INTERFACE_H
#define INSIM_INTERFACE_H
#include <QtPlugin>

class QString;

namespace LFS
{
    class InSim;
    class INSIMSHARED_EXPORT InSimInterface
    {
    public:
        //! Default destructor.
        virtual ~InSimInterface(){}
        //! Setup data for connection.
        virtual void setConnectionData(QString &newClientName, QString &newHostname,
                                       quint16 newPort)=0;
        //! Query connection data.
        virtual void getConnectionData(QString &clientName, QString &hostname, quint16 &port)=0;
        //! Connect to the specified host.
        virtual void connectToHost(QString &newClientName, QString &newHostname, quint16 newPort)=0;
        //! Connect to the stored host.
        virtual void connectToHost()=0;
        //! Disconnect the current connection.
        virtual void disconnectFromHost()=0;
        //! Return a pointer to the implementation.
        virtual InSim *getInSim()=0;
        //! Is connection up?
        virtual bool isConnected()=0;
    };
}
//! Step #1.
QT_BEGIN_NAMESPACE
//! Step #2.
Q_DECLARE_INTERFACE(LFS::InSimInterface, "com.Kontza.Plugin.InSimInterface/1.0");
//! Step #3.
QT_END_NAMESPACE
#endif // INSIM_INTERFACE_H
